{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "SVM.ipynb",
      "version": "0.3.2",
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    }
  },
  "cells": [
    {
      "cell_type": "code",
      "metadata": {
        "id": "FjanH8hm8svN",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#Description: This program predicts the price of FB stock for a specific day\n",
        "#             using the Machine Learning algorithm called \n",
        "#             Support Vector Regression (SVR) Model"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "t6y03Lsd89DA",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#import the packages\n",
        "import pandas as pd\n",
        "import numpy as np\n",
        "from sklearn.svm import SVR\n",
        "import matplotlib.pyplot as plt"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "YMwNAtCp9Tt2",
        "colab_type": "code",
        "colab": {
          "resources": {
            "http://localhost:8080/nbextensions/google.colab/files.js": {
              "data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7Ci8vIE1heCBhbW91bnQgb2YgdGltZSB0byBibG9jayB3YWl0aW5nIGZvciB0aGUgdXNlci4KY29uc3QgRklMRV9DSEFOR0VfVElNRU9VVF9NUyA9IDMwICogMTAwMDsKCmZ1bmN0aW9uIF91cGxvYWRGaWxlcyhpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IHN0ZXBzID0gdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKTsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIC8vIENhY2hlIHN0ZXBzIG9uIHRoZSBvdXRwdXRFbGVtZW50IHRvIG1ha2UgaXQgYXZhaWxhYmxlIGZvciB0aGUgbmV4dCBjYWxsCiAgLy8gdG8gdXBsb2FkRmlsZXNDb250aW51ZSBmcm9tIFB5dGhvbi4KICBvdXRwdXRFbGVtZW50LnN0ZXBzID0gc3RlcHM7CgogIHJldHVybiBfdXBsb2FkRmlsZXNDb250aW51ZShvdXRwdXRJZCk7Cn0KCi8vIFRoaXMgaXMgcm91Z2hseSBhbiBhc3luYyBnZW5lcmF0b3IgKG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGJyb3dzZXIgeWV0KSwKLy8gd2hlcmUgdGhlcmUgYXJlIG11bHRpcGxlIGFzeW5jaHJvbm91cyBzdGVwcyBhbmQgdGhlIFB5dGhvbiBzaWRlIGlzIGdvaW5nCi8vIHRvIHBvbGwgZm9yIGNvbXBsZXRpb24gb2YgZWFjaCBzdGVwLgovLyBUaGlzIHVzZXMgYSBQcm9taXNlIHRvIGJsb2NrIHRoZSBweXRob24gc2lkZSBvbiBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcCwKLy8gdGhlbiBwYXNzZXMgdGhlIHJlc3VsdCBvZiB0aGUgcHJldmlvdXMgc3RlcCBhcyB0aGUgaW5wdXQgdG8gdGhlIG5leHQgc3RlcC4KZnVuY3Rpb24gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpIHsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIGNvbnN0IHN0ZXBzID0gb3V0cHV0RWxlbWVudC5zdGVwczsKCiAgY29uc3QgbmV4dCA9IHN0ZXBzLm5leHQob3V0cHV0RWxlbWVudC5sYXN0UHJvbWlzZVZhbHVlKTsKICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5leHQudmFsdWUucHJvbWlzZSkudGhlbigodmFsdWUpID0+IHsKICAgIC8vIENhY2hlIHRoZSBsYXN0IHByb21pc2UgdmFsdWUgdG8gbWFrZSBpdCBhdmFpbGFibGUgdG8gdGhlIG5leHQKICAgIC8vIHN0ZXAgb2YgdGhlIGdlbmVyYXRvci4KICAgIG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSA9IHZhbHVlOwogICAgcmV0dXJuIG5leHQudmFsdWUucmVzcG9uc2U7CiAgfSk7Cn0KCi8qKgogKiBHZW5lcmF0b3IgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIGJldHdlZW4gZWFjaCBhc3luYyBzdGVwIG9mIHRoZSB1cGxvYWQKICogcHJvY2Vzcy4KICogQHBhcmFtIHtzdHJpbmd9IGlucHV0SWQgRWxlbWVudCBJRCBvZiB0aGUgaW5wdXQgZmlsZSBwaWNrZXIgZWxlbWVudC4KICogQHBhcmFtIHtzdHJpbmd9IG91dHB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIG91dHB1dCBkaXNwbGF5LgogKiBAcmV0dXJuIHshSXRlcmFibGU8IU9iamVjdD59IEl0ZXJhYmxlIG9mIG5leHQgc3RlcHMuCiAqLwpmdW5jdGlvbiogdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKSB7CiAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCk7CiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gZmFsc2U7CgogIGNvbnN0IG91dHB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvdXRwdXRJZCk7CiAgb3V0cHV0RWxlbWVudC5pbm5lckhUTUwgPSAnJzsKCiAgY29uc3QgcGlja2VkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHsKICAgICAgcmVzb2x2ZShlLnRhcmdldC5maWxlcyk7CiAgICB9KTsKICB9KTsKCiAgY29uc3QgY2FuY2VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgaW5wdXRFbGVtZW50LnBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY2FuY2VsKTsKICBjYW5jZWwudGV4dENvbnRlbnQgPSAnQ2FuY2VsIHVwbG9hZCc7CiAgY29uc3QgY2FuY2VsUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBjYW5jZWwub25jbGljayA9ICgpID0+IHsKICAgICAgcmVzb2x2ZShudWxsKTsKICAgIH07CiAgfSk7CgogIC8vIENhbmNlbCB1cGxvYWQgaWYgdXNlciBoYXNuJ3QgcGlja2VkIGFueXRoaW5nIGluIHRpbWVvdXQuCiAgY29uc3QgdGltZW91dFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9LCBGSUxFX0NIQU5HRV9USU1FT1VUX01TKTsKICB9KTsKCiAgLy8gV2FpdCBmb3IgdGhlIHVzZXIgdG8gcGljayB0aGUgZmlsZXMuCiAgY29uc3QgZmlsZXMgPSB5aWVsZCB7CiAgICBwcm9taXNlOiBQcm9taXNlLnJhY2UoW3BpY2tlZFByb21pc2UsIHRpbWVvdXRQcm9taXNlLCBjYW5jZWxQcm9taXNlXSksCiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdzdGFydGluZycsCiAgICB9CiAgfTsKCiAgaWYgKCFmaWxlcykgewogICAgcmV0dXJuIHsKICAgICAgcmVzcG9uc2U6IHsKICAgICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICAgIH0KICAgIH07CiAgfQoKICBjYW5jZWwucmVtb3ZlKCk7CgogIC8vIERpc2FibGUgdGhlIGlucHV0IGVsZW1lbnQgc2luY2UgZnVydGhlciBwaWNrcyBhcmUgbm90IGFsbG93ZWQuCiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKCiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7CiAgICBjb25zdCBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CiAgICBsaS5hcHBlbmQoc3BhbihmaWxlLm5hbWUsIHtmb250V2VpZ2h0OiAnYm9sZCd9KSk7CiAgICBsaS5hcHBlbmQoc3BhbigKICAgICAgICBgKCR7ZmlsZS50eXBlIHx8ICduL2EnfSkgLSAke2ZpbGUuc2l6ZX0gYnl0ZXMsIGAgKwogICAgICAgIGBsYXN0IG1vZGlmaWVkOiAkewogICAgICAgICAgICBmaWxlLmxhc3RNb2RpZmllZERhdGUgPyBmaWxlLmxhc3RNb2RpZmllZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbi9hJ30gLSBgKSk7CiAgICBjb25zdCBwZXJjZW50ID0gc3BhbignMCUgZG9uZScpOwogICAgbGkuYXBwZW5kQ2hpbGQocGVyY2VudCk7CgogICAgb3V0cHV0RWxlbWVudC5hcHBlbmRDaGlsZChsaSk7CgogICAgY29uc3QgZmlsZURhdGFQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7CiAgICAgICAgcmVzb2x2ZShlLnRhcmdldC5yZXN1bHQpOwogICAgICB9OwogICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7CiAgICB9KTsKICAgIC8vIFdhaXQgZm9yIHRoZSBkYXRhIHRvIGJlIHJlYWR5LgogICAgbGV0IGZpbGVEYXRhID0geWllbGQgewogICAgICBwcm9taXNlOiBmaWxlRGF0YVByb21pc2UsCiAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgYWN0aW9uOiAnY29udGludWUnLAogICAgICB9CiAgICB9OwoKICAgIC8vIFVzZSBhIGNodW5rZWQgc2VuZGluZyB0byBhdm9pZCBtZXNzYWdlIHNpemUgbGltaXRzLiBTZWUgYi82MjExNTY2MC4KICAgIGxldCBwb3NpdGlvbiA9IDA7CiAgICB3aGlsZSAocG9zaXRpb24gPCBmaWxlRGF0YS5ieXRlTGVuZ3RoKSB7CiAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWluKGZpbGVEYXRhLmJ5dGVMZW5ndGggLSBwb3NpdGlvbiwgTUFYX1BBWUxPQURfU0laRSk7CiAgICAgIGNvbnN0IGNodW5rID0gbmV3IFVpbnQ4QXJyYXkoZmlsZURhdGEsIHBvc2l0aW9uLCBsZW5ndGgpOwogICAgICBwb3NpdGlvbiArPSBsZW5ndGg7CgogICAgICBjb25zdCBiYXNlNjQgPSBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgY2h1bmspKTsKICAgICAgeWllbGQgewogICAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgICBhY3Rpb246ICdhcHBlbmQnLAogICAgICAgICAgZmlsZTogZmlsZS5uYW1lLAogICAgICAgICAgZGF0YTogYmFzZTY0LAogICAgICAgIH0sCiAgICAgIH07CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPQogICAgICAgICAgYCR7TWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCl9JSBkb25lYDsKICAgIH0KICB9CgogIC8vIEFsbCBkb25lLgogIHlpZWxkIHsKICAgIHJlc3BvbnNlOiB7CiAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgIH0KICB9Owp9CgpzY29wZS5nb29nbGUgPSBzY29wZS5nb29nbGUgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYiA9IHNjb3BlLmdvb2dsZS5jb2xhYiB8fCB7fTsKc2NvcGUuZ29vZ2xlLmNvbGFiLl9maWxlcyA9IHsKICBfdXBsb2FkRmlsZXMsCiAgX3VwbG9hZEZpbGVzQ29udGludWUsCn07Cn0pKHNlbGYpOwo=",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/javascript"
                ]
              ],
              "status": 200,
              "status_text": ""
            }
          },
          "base_uri": "https://localhost:8080/",
          "height": 321
        },
        "outputId": "242b2840-0c3b-4f01-d82d-77a4ed844e4e"
      },
      "source": [
        "#Load the data\n",
        "#from google.colab import files # Use to load data on Google Colab\n",
        "#uploaded = files.upload() # Use to load data on Google Colab\n",
        "df = pd.read_csv('FB_30_days.csv')\n",
        "df.head(7)"
      ],
      "execution_count": 21,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "\n",
              "     <input type=\"file\" id=\"files-a5e968ac-2b1d-494d-b9fb-aa25cfae5bfd\" name=\"files[]\" multiple disabled />\n",
              "     <output id=\"result-a5e968ac-2b1d-494d-b9fb-aa25cfae5bfd\">\n",
              "      Upload widget is only available when the cell has been executed in the\n",
              "      current browser session. Please rerun this cell to enable.\n",
              "      </output>\n",
              "      <script src=\"/nbextensions/google.colab/files.js\"></script> "
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "Saving FB_30_days.csv to FB_30_days (1).csv\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Date</th>\n",
              "      <th>Open</th>\n",
              "      <th>High</th>\n",
              "      <th>Low</th>\n",
              "      <th>Close</th>\n",
              "      <th>Adj Close</th>\n",
              "      <th>Volume</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>2019-05-01</td>\n",
              "      <td>194.779999</td>\n",
              "      <td>196.179993</td>\n",
              "      <td>193.009995</td>\n",
              "      <td>193.029999</td>\n",
              "      <td>193.029999</td>\n",
              "      <td>15996600</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>2019-05-02</td>\n",
              "      <td>193.000000</td>\n",
              "      <td>194.000000</td>\n",
              "      <td>189.750000</td>\n",
              "      <td>192.529999</td>\n",
              "      <td>192.529999</td>\n",
              "      <td>13209500</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>2019-05-03</td>\n",
              "      <td>194.380005</td>\n",
              "      <td>196.160004</td>\n",
              "      <td>193.710007</td>\n",
              "      <td>195.470001</td>\n",
              "      <td>195.470001</td>\n",
              "      <td>14575400</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>2019-05-06</td>\n",
              "      <td>191.240005</td>\n",
              "      <td>194.279999</td>\n",
              "      <td>190.550003</td>\n",
              "      <td>193.880005</td>\n",
              "      <td>193.880005</td>\n",
              "      <td>13994900</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>2019-05-07</td>\n",
              "      <td>192.539993</td>\n",
              "      <td>192.899994</td>\n",
              "      <td>187.850006</td>\n",
              "      <td>189.770004</td>\n",
              "      <td>189.770004</td>\n",
              "      <td>16253000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>2019-05-08</td>\n",
              "      <td>189.389999</td>\n",
              "      <td>190.720001</td>\n",
              "      <td>188.550003</td>\n",
              "      <td>189.539993</td>\n",
              "      <td>189.539993</td>\n",
              "      <td>12505700</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>2019-05-09</td>\n",
              "      <td>187.199997</td>\n",
              "      <td>189.770004</td>\n",
              "      <td>186.259995</td>\n",
              "      <td>188.649994</td>\n",
              "      <td>188.649994</td>\n",
              "      <td>12967000</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "         Date        Open        High  ...       Close   Adj Close    Volume\n",
              "0  2019-05-01  194.779999  196.179993  ...  193.029999  193.029999  15996600\n",
              "1  2019-05-02  193.000000  194.000000  ...  192.529999  192.529999  13209500\n",
              "2  2019-05-03  194.380005  196.160004  ...  195.470001  195.470001  14575400\n",
              "3  2019-05-06  191.240005  194.279999  ...  193.880005  193.880005  13994900\n",
              "4  2019-05-07  192.539993  192.899994  ...  189.770004  189.770004  16253000\n",
              "5  2019-05-08  189.389999  190.720001  ...  189.539993  189.539993  12505700\n",
              "6  2019-05-09  187.199997  189.770004  ...  188.649994  188.649994  12967000\n",
              "\n",
              "[7 rows x 7 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 21
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "W4HdaDAe9ync",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#Create the lists / X and y data set\n",
        "dates = []\n",
        "prices = []"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "GZWGDyrB-Bf4",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        },
        "outputId": "cb15829f-e2e0-496e-d761-c5b440271a49"
      },
      "source": [
        "#Get the number of rows and columns in the data set\n",
        "df.shape"
      ],
      "execution_count": 23,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(22, 7)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 23
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "u89jlYNx-OmV",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 79
        },
        "outputId": "47d34d40-2a0e-4a73-85c6-92183b32b9d2"
      },
      "source": [
        "#Print the last row of data (this will be the data that we test on)\n",
        "df.tail(1)"
      ],
      "execution_count": 24,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Date</th>\n",
              "      <th>Open</th>\n",
              "      <th>High</th>\n",
              "      <th>Low</th>\n",
              "      <th>Close</th>\n",
              "      <th>Adj Close</th>\n",
              "      <th>Volume</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>21</th>\n",
              "      <td>2019-05-31</td>\n",
              "      <td>180.279999</td>\n",
              "      <td>180.539993</td>\n",
              "      <td>177.160004</td>\n",
              "      <td>177.470001</td>\n",
              "      <td>177.470001</td>\n",
              "      <td>15226500</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "          Date        Open        High  ...       Close   Adj Close    Volume\n",
              "21  2019-05-31  180.279999  180.539993  ...  177.470001  177.470001  15226500\n",
              "\n",
              "[1 rows x 7 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 24
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "1LvlTeis-d3q",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        },
        "outputId": "985ca217-533f-4ca4-80ed-f2a73f8c236b"
      },
      "source": [
        "#Get all of the data except for the last row\n",
        "df = df.head(len(df)-1)\n",
        "print(df.shape)"
      ],
      "execution_count": 25,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(21, 7)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "y78lHMfC-uYO",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "df_dates = df.loc[:,'Date'] # Get all of the rows from the Date column\n",
        "df_open = df.loc[:,'Open'] #Get all of the rows from the Open column"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "fQS0WGjx-9g-",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#Create the independent data set 'X' as dates\n",
        "for date in df_dates:\n",
        "  dates.append( [int(date.split('-')[2])] )\n",
        "  \n",
        "#Create the dependent data set 'y' as prices\n",
        "for open_price in df_open:\n",
        "  prices.append(float(open_price))"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "j35I1Qf3_w-e",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        },
        "outputId": "c7f8dd26-dc56-4e9f-e969-564be79f3047"
      },
      "source": [
        "#See what days were recoreded in teh data set\n",
        "print(dates)"
      ],
      "execution_count": 28,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "[[1], [2], [3], [6], [7], [8], [9], [10], [13], [14], [15], [16], [17], [20], [21], [22], [23], [24], [28], [29], [30]]\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "_wMcugp9_9nx",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#Function to make predictions using 3 different support vector regression models with 3 different kernals\n",
        "def predict_prices(dates, prices, x):\n",
        "  \n",
        "  #Create 3 Support Vector Regression Models\n",
        "  svr_lin = SVR(kernel='linear', C=1e3)\n",
        "  svr_poly = SVR(kernel='poly', C=1e3, degree=2)\n",
        "  svr_rbf = SVR(kernel='rbf', C=1e3, gamma=0.1)\n",
        "  \n",
        "  #Train the models on the dates and prices\n",
        "  svr_lin.fit(dates,prices)\n",
        "  svr_poly.fit(dates, prices)\n",
        "  svr_rbf.fit(dates, prices)\n",
        "  \n",
        "  #Plot the models on a graph to see which has the best fit\n",
        "  plt.scatter(dates, prices, color = 'black', label='Data')\n",
        "  plt.plot(dates, svr_rbf.predict(dates), color = 'red', label='RBF model')\n",
        "  plt.plot(dates, svr_lin.predict(dates), color = 'green', label='Linear model')\n",
        "  plt.plot(dates, svr_poly.predict(dates), color = 'blue', label='Polynomial model')\n",
        "  plt.xlabel('Date')\n",
        "  plt.ylabel('Price')\n",
        "  plt.title('Support Vector Regression')\n",
        "  plt.legend()\n",
        "  plt.show()\n",
        "  \n",
        "  #return all three model predictions\n",
        "  return svr_rbf.predict(x)[0], svr_lin.predict(x)[0], svr_poly.predict(x)[0]"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "NrZylax7CH21",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 367
        },
        "outputId": "84a43040-e0f5-4c96-8445-6e27646b1404"
      },
      "source": [
        "#Predict the price of FB on day 31\n",
        "predicted_price = predict_prices(dates, prices, [[31]])\n",
        "print(predicted_price)"
      ],
      "execution_count": 31,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/sklearn/svm/base.py:193: FutureWarning: The default value of gamma will change from 'auto' to 'scale' in version 0.22 to account better for unscaled features. Set gamma explicitly to 'auto' or 'scale' to avoid this warning.\n",
            "  \"avoid this warning.\", FutureWarning)\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "(180.33354977415465, 179.34125331240614, 179.7036315391126)\n"
          ],
          "name": "stdout"
        }
      ]
    }
  ]
}
